SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[paAgregarCapacitacion]

--Parametros de la CAPACITACION
@IdCapacitacion INT,
@Descripcion VARCHAR(255) = NULL,
@CursoOCapacitacion INT = NULL,
@Fecha VARCHAR(10) = NULL,
@Entidad  INT = NULL,
@Nivel  INT = NULL,
@HorasCatedra INT = NULL,
@GrupoIncumbencias INT = NULL,
@ValeComoCurso VARCHAR(1) = NULL,
@EsSoloParaHabilitantes VARCHAR(1) = NULL,
-- Parametros del AGENTE
@Agente INT,
@Aprobado VARCHAR(1),
@FechaAgente VARCHAR(10)

AS
SET NOCOUNT ON
DECLARE @Error INT
DECLARE @IdAgente INT

BEGIN TRANSACTION

IF NOT EXISTS(SELECT * FROM tb_Agentes WHERE Documento = @Agente) BEGIN
	RAISERROR('El Agente no existe en la base de datos.', 16,1)
	SET @Error = -1
	GOTO Salir
END

SELECT @IdAgente = IdAgente FROM tb_Agentes WHERE Documento = @Agente

IF @IdCapacitacion = -1 BEGIN
	INSERT INTO tb_Capacitaciones(Descripcion, CursoOCapacitacion, Fecha, Entidad, Nivel, HorasCatedra, GrupoIncumbencias, ValeComoCurso, EsSoloParaHabilitantes)
	VALUES(@Descripcion, @CursoOCapacitacion, @Fecha, @Entidad, @Nivel, @HorasCatedra, @Grupoincumbencias, @ValeComoCurso, @EsSoloParaHabilitantes)
	SELECT @IdCapacitacion = @@IDENTITY, @Error = @@ERROR

	IF @Error <> 0 GOTO Salir
END

INSERT INTO tb_CapacitacionesDelAgente (Agente, Capacitacion, Fecha, Aprobado)
VALUES(@IdAgente, @IdCapacitacion, @FechaAgente, @Aprobado) 
SET @Error = @@Error

Salir:
IF @Error = 0 
	COMMIT TRANSACTION
ELSE
	ROLLBACK TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[paAgregarCapacitacion] TO [Juntas]
GO
